/**
 * 
 */
package es.ats.codington.festival.interfaces.services;

import java.sql.SQLException;
import java.util.List;

import es.ats.codington.festival.domain.Event;
import es.ats.codington.festival.domain.People;
import es.ats.codington.festival.domain.Visitor;
import es.ats.codington.festival.exceptions.ServiceException;

/**
 * @author Codington_RED
 *
 */
public interface IVisitorService {
	
	/**
	 * Interface Service for createVisitor method
	 * @param people
	 * @return isCreated
	 * @throws ServiceException
	 */
	public boolean createVisitor(People people) throws ServiceException;
	
	/**
	 * Interface Service for createVisitor method
	 * @param visitor
	 * @return isCreated
	 * @throws ServiceException
	 */
	public boolean createVisitor(Visitor visitor) throws ServiceException;
	
	/**
	 * Interface Service for searchVisitor method
	 * @param visitor
	 * @return locatedVisitor
	 * @throws ServiceException
	 */
	public Visitor searchVisitor(Visitor visitor) throws ServiceException;
	
	/**
	 * Interface Service for showRegisteredEventsForVisitor method
	 * @param visitor
	 * @return events
	 * @throws ServiceException
	 */
	public List<Event> showRegisteredEventsForVisitor(Visitor visitor) throws ServiceException;
	
	/**
	 * Interface Service for updateVisitor method
	 * @param visitor
	 * @return affectedRows
	 * @throws ServiceException
	 */
	public int updateVisitor(Visitor visitor) throws ServiceException;
	
	/**
	 * Interface Service for updateVisitor method
	 * @param people
	 * @return affectedRows
	 * @throws ServiceException
	 */
	public int updateVisitor(People people) throws ServiceException;
	
	/**
	 * Interface Service for changePassword method
	 * @param visitor
	 * @return affectedRows
	 * @throws ServiceException
	 */
	public int changePassword(Visitor visitor) throws ServiceException;
	
	/**
	 * Interface Service for searchPeople method
	 * @param people
	 * @return locatedPeople
	 * @throws ServiceException
	 */
	public People searchPeople(People people) throws ServiceException;
	
	/**
	 * Interface Service for getIdPeople method
	 * @param people
	 * @return idPeople
	 * @throws ServiceException
	 */
	public int getIdPeople(People people) throws ServiceException;
	
	/**
	 * Interface Service for getIdVisitor method
	 * @param visitor
	 * @return idVisitor
	 * @throws ServiceException
	 */
	public int getIdVisitor(Visitor visitor) throws ServiceException;
	
	/**
	 * Interface Service for createVisitorV method
	 * @param visitor
	 * @return isCreated
	 * @throws ServiceException
	 */
	public boolean createVisitorV(Visitor visitor) throws ServiceException;
	
	/**
	 * Interface Service for showRegisteredEvents method
	 * @param visitor
	 * @return events
	 * @throws ServiceException
	 */
	public List<Event> showRegisteredEvents(Visitor visitor) throws ServiceException;
	
	/**
	 * Interface Service for checkLogin method
	 * @param visitor
	 * @return isLogin
	 * @throws ServiceException
	 * @throws SQLException
	 */
	public boolean checkLogin(Visitor visitor) throws ServiceException, SQLException;
	
	/**
	 * Interface Service for checkPeople method
	 * @param people
	 * @return isLogin
	 * @throws ServiceException
	 * @throws SQLException
	 */
	public boolean checkPeople(People people) throws ServiceException, SQLException;
	
	/**
	 * Interface Service for checkAdmin method
	 * @param visitor
	 * @return isAdmin
	 * @throws ServiceException
	 * @throws SQLException
	 */
	public boolean checkAdmin(Visitor visitor) throws ServiceException, SQLException;
	
	/**
	 * Interface Service for updateVisitorDni method
	 * @param people
	 * @return affectedRows
	 * @throws ServiceException
	 */
	public int updateVisitorDni(People people) throws ServiceException;

}
